colorscheme:
yellow
violet
bw
Prihlásenie:
Login: Heslo:

Problem statement: zenit14cke

E: Osem smerov
25 bodov Časový limit: 2000 ms

Zvieratkám sa nezriedka stáva, že svoj výskum počas doktorandského štúdia zanedbávajú a nevenujú mu dostatočne veľa času. Keď potom príde chvíľa obhajoby, snažia sa počas prezentácie presvedčiť prítomnú komisiu o opaku. Takéto prezentácie bývajú často bez zaujímavého obsahu a veľmi nudné. Členovia obhajobných komisií v takých situáciách hľadajú rôzne metódy, ako si spríjemniť čakanie na koniec prezentácie. Hroch Karol napríklad vždy lúšti pod stolom osemsmerovky.

V poslednej dobe bolo nedbanlivých dizertantov priveľa a Karol stihol vylúštiť všetky osemsmerovky, ktoré sa dali v trafike kúpiť. Preto sa rozhodol, že si bude osemsmerovky pripravovať sám. Hodil by sa mu ale program, ktorý mu pomôže pri overovaní správností jeho odpovedí.

V tejto úlohe budeme uvažovať len malé písmená anglickej abecedy. Pravdepodobne viete, že osemsmerovka je hlavolam, v ktorom riešiteľ hľadá predpísané slová v spleti písmeniek. Keď povieme, že táto spleť má obdĺžnikový tvar, myslíme tým, že môže vyzerať napríklad takto:

a b x k f
g t u j u
e r t u a
a r q w w

Ak si smery označíme analogicky k svetovým stranám štandardne položenej mapy, môžeme v príklade vyššie v juhozápadnom smere nájsť kura.

Karol má rád veľké osemsmerovky. Preto je lepšie, ak inštancie nie sú zadané explicitne. Namiesto toho ich vygenerujeme na základe istých počiatočných hodnôt. Na začiatku si Karol určí štyri čísla \(A\), \(B\), \(C\) a \(x_0\). Následne môže vypočítať \(x_1 = (x_0\cdot A + B)\) mod \(C\), kde mod označuje zvyšok po delení. Pomocou \(x_1\) môže rovnakým spôsobom vypočítať \(x_2\) a takto postupovať ľubovoľne dlho. Napríklad, pre \(A = 7, B = 23, C = 61\) a \(x_0 = 1\) dostávame postupnosť 30, 50, 7, 11, 39, .

Ak máme postupnosť hodnôt, môžeme z nej spraviť postupnosť písmen malej anglickej abecedy tak, že číslo bude zodpovedať poradiu písmena v abecede (začínajúc od nuly). Ak číslo presahuje 25, budeme uvažovať jeho zvyšok po delení 26. Z postupnosti čísel v príklade vyššie by sme dostali postupnosť písmen e, y, h, l, n,. Z postupnosti písmen získame osemsmerovku napísaním týchto písmen po riadkoch zľava doprava. Prečítajte rozmery osemsmerovky, hodnoty na generovanie a jedno konkrétne slovo a vypíšte, či sa toto slovo v osemsmerovke nachádza.

Vstup a výstup

Na prvom riadku vstupu je 6 celých nezáporných čísel \(R, S, A, B, C, x_0\). Okrem \(x_0\) sú všetky čísla kladné. Rozmery osemsmerovky \(R\) a \(S\) nepresiahnu 50,000. Čísla \(A\) a \(B\) nepresiahnu miliardu, \(C\) nepresiahne 491 a \(x_0\) nepresiahne \(C\). Na druhom riadku vstupu je jedno slovo pozostávajúce z aspoň 1 a najviac 20 písmen malej anglickej abecedy. Na výstup vypíšte ANO alebo NIE podľa toho, či sa slovo nachádza v osemsmerovke. Vďaka grupovaniu vstupov náhodný program príliš veľa bodov zrejme nezíska. Nezabudnite, že pamäťový limit je 64MB.

Ľahšia verzia

V približne polovici vstupov rozmery osemsmerovky nepresiahnu 100 \(\times\) 100.

Príklady

Input:

4 5 7 23 61 1
rsv

Output:

ANO

Po vygenerovaní dostávame osemsmerovku

e y h l n
a v w c j
y i s b d
r t i r u

Input:

4 5 7 23 61 1
x

Output:

NIE

Input:

10 10 2 0 3 1
cbb

Output:

NIE

(C) MišoF, Zemčo. 2007 - 2013